package com.hjzd.ai.smartpractice.service;

import com.hjzd.ai.smartpractice.util.res.ResponseModel;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
import reactor.core.publisher.Flux;

import java.util.List;
import java.util.Map;

/**
 * @author pengyonglei
 * @version 1.0.0
 */
public interface ApiService {

	Flux<String> chatCompletionsStream(String uniqueKey, String chatLLMType, String chatType, String prompt);

	void chatCompletionsStream2(String uniqueKey, String prompt, String chatType, HttpServletResponse response);

	ResponseModel<Map<String, Object>> chatCompletions(String uniqueKey, String prompt);

	ResponseModel<Map<String, Object>> init();

	ResponseModel<Map<String, Object>> scoreForChat(String uniqueKey, String audioText, String duration, String id, String negativeValue);

	ResponseModel<Map<String, Object>> audioToText(String uniqueKey, MultipartFile file);

	String compoundSavedFile(String uniqueKey);

	ResponseModel<Map<String, Object>> scoreForAllChat(String uniqueKey);

	public String generateCustomerPortraits();

	public String getCustomerRole();

	public  String getLlmRole();

	ResponseModel<String> exportTestResult(String date);

	ResponseModel<List<String>> getCharacters();
}
